$.dd.Drop = $.extend($.util.Observable, {
	constructor: function(el, config){
		$.apply(this, config);
		this.el = $.get(el);
		
		this.addEvents(
			'enter'
			,'over'
			,'out'
			,'beforedrop'
			,'drop'
		);
		
		$.dd.Drop.superclass.constructor.call(this, config);
		
		this.on('enter', function(drop, drag){
			drag.validDrop = true;
		}, this);
		
		this.on('drop', function(drop, drag){
			drop.el.createChild({
				cls: 'el'
			});
		}, this);
		
		this.init();
	}
	
	,init: function(){
		var me = this;
		
		me.el.on('mouseenter', function(){
			if($.dd.Manager.drag){
				
				me.fireEvent('enter', me, $.dd.Manager.drag);	
			}
		});
		
		me.el.on('mouseleave', function(){
			if($.dd.Manager.drag){
				me.fireEvent('out', me, $.dd.Manager.drag);	
			}	
		});
		
		me.el.on('mouseup', function(){
			if($.dd.Manager.drag){
				me.fireEvent('drop', me, $.dd.Manager.drag);	
			}	
		});
	}
});